#include "main.h"
#include "air001_ll_Core_Board.h"


static void APP_SystemClockConfig(void);
static void APP_LedBlinking(void);

/**
  * @brief  应用程序入口函数.
  * @param  无
  * @retval int
  */
int main(void)
{
  /* 配置系统时钟 */
  APP_SystemClockConfig();

  /* 配置Usart */
  APP_ConfigUsart(USART1);
  
  /* 配置I2C */
  APP_ConfigI2cSlave();

  /* 配置LPTIM */
  APP_ConfigLPTIMOneShot();

  APP_GpioConfig();
  while (1)
  {
    //APP_UsartTransmit_IT(USART1, "test", 5);
    //LL_mDelay(500);
    


  }
}

uint16_t PWM_cnt = 1000;
uint16_t PWM_value[16] = {100,200,300,400,500,600,700,800,900,980};
void USER_PWM(void)
{
  //static  PWM_cnt = 0;
  PWM_cnt++;
  if (PWM_cnt > 1000)
  {
    PWM_cnt = 0;
  }
  
  for (char i = 0; i < 10; i++)
  {
    if (PWM_value[i] < PWM_cnt)
    {
      GPIO_set(i+1,0);
    }
    else
    {
      GPIO_set(i+1,1);
    }
  }

}










/**
  * @brief  系统时钟配置函数
  * @param  无
  * @retval 无
  */
static void APP_SystemClockConfig(void)
{
  /* 使能HSI */
  LL_RCC_HSI_Enable();
  while(LL_RCC_HSI_IsReady() != 1)
  {
  }

  /* 设置 AHB 分频*/
  LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);

  /* 配置HSISYS作为系统时钟源 */
  LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSISYS);
  while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSISYS)
  {
  }

  /* 设置 APB1 分频*/
  LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
  LL_Init1msTick(8000000);

  /* 更新系统时钟全局变量SystemCoreClock(也可以通过调用SystemCoreClockUpdate函数更新) */
  LL_SetSystemCoreClock(8000000);
}



/**
  * @brief  LED灯闪烁
  * @param  无
  * @retval 无
  */
static void APP_LedBlinking(void)
{
  while (1)
  {
    BSP_LED_Toggle(LED_RED);
    LL_mDelay(500);
  }
}

/**
  * @brief  错误执行函数
  * @param  无
  * @retval 无
  */
void Error_Handler(void)
{
  /* 无限循环 */
  while (1)
  {
  }
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  输出产生断言错误的源文件名及行号
  * @param  file：源文件名指针
  * @param  line：发生断言错误的行号
  * @retval 无
  */
void assert_failed(uint8_t *file, uint32_t line)
{
  /* 用户可以根据需要添加自己的打印信息,
     例如: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* 无限循环 */
  while (1)
  {
  }
}
#endif /* USE_FULL_ASSERT */

/************************ (C) COPYRIGHT AirM2M *****END OF FILE******************/
